// 等待页面加载完成
document.addEventListener('DOMContentLoaded', function() {
  // 定期检查工具栏是否已加载
  const checkInterval = setInterval(function() {
    const toolbar = document.querySelector('#arc_toolbar_report .video-toolbar-right');
    if (toolbar) {
      clearInterval(checkInterval);
      addRotateButton(toolbar);
    }
  }, 1000);
});

// 也监听视频播放器的加载
window.addEventListener('load', function() {
  setTimeout(checkForToolbar, 2000);
});

// 检查工具栏
function checkForToolbar() {
  const toolbar = document.querySelector('#arc_toolbar_report .video-toolbar-right');
  if (toolbar) {
    addRotateButton(toolbar);
  } else {
    // 如果还没加载，继续等待
    setTimeout(checkForToolbar, 1000);
  }
}

// 添加旋转按钮到工具栏
function addRotateButton(toolbar) {
  // 检查按钮是否已存在
  if (document.getElementById('rotate-video-btn')) {
    return;
  }
  
  // 创建按钮
  const rotateButton = document.createElement('div');
  rotateButton.id = 'rotate-video-btn';
  rotateButton.className = 'video-rotate-btn';
  rotateButton.innerHTML = '旋转视频';
  rotateButton.title = '纠正手机横屏视频方向';
  
  // 添加点击事件
  let isRotated = false;
  rotateButton.addEventListener('click', function() {
    isRotated = !isRotated;
    toggleVideoRotation(isRotated);
    
    // 切换按钮高亮状态
    if (isRotated) {
      rotateButton.classList.add('active');
    } else {
      rotateButton.classList.remove('active');
    }
  });
  
  // 添加到子元素最前面
  toolbar.insertBefore(rotateButton, toolbar.firstChild);
}

// 切换视频旋转状态
function toggleVideoRotation(shouldRotate) {
  // 查找视频元素
  const videoWrap = document.querySelector('.bpx-player-video-wrap');
  if (!videoWrap) return;
  
  const videoElement = videoWrap.querySelector('video');
  if (!videoElement) return;
  
  if (shouldRotate) {
    // 应用旋转和缩放
    videoElement.style.transform = 'rotate(-90deg) scale(2.4)';
    // 旋转圆心
    videoElement.style.transformOrigin = '50% 50%';
  } else {
    // 移除旋转和缩放
    videoElement.style.transform = '';
  }
}

// 监听URL变化，因为B站是SPA应用
let lastUrl = location.href;
new MutationObserver(() => {
  const url = location.href;
  if (url !== lastUrl) {
    lastUrl = url;
    setTimeout(checkForToolbar, 2000);
  }
}).observe(document, {subtree: true, childList: true});
